In a dynamic business environment, where timely access to data is important, computerized databases are commonly used to store data for easy retrieval and organization. The data is stored electronically in mass storage devices. Several computer software programs collectively called a database management system are used to manipulate the data for retrieval, deletion, updates and storage. A database administrator (DBA) is responsible for organizing, monitoring and reorganizing the logical database structure.
One type of DBMS used by many enterprises is a relational database management system (RDBMS). An RDBMS is a body of related information stored in a computer organized as tables having columns and rows. The columns correspond to attributes of relations and rows correspond to a relation grouping called a tuple. For example, an inventory table could have attributes such as an inventory item number, a description of the item, a quantity in stock, a price and a supplier. Each column corresponds to an attribute and each row is a tuple comprising the attributes for a given item.
Large enterprises with many remote business locations frequently have data stored at each separate location. For example, a large retail business having numerous outlets many miles away from each other could have separate databases at each location keeping track of that store's inventory.
The local databases are accessible by local sales staff for information about items in stock locally. However, central purchasing staff for the business also need to access the information regarding each store's inventory.
The databases at each location can be linked together through communications systems so that the databases can all be reached from a central location. A distributed relational database network consists of a collection of tables spread across a number of computer systems having the same or different types of DBMSs that are interconnected in a network. Each computer system in the network has its own DBMS to manage data locally stored in its environment. Each of the remote locations may be using one of many different DBMSs that are currently available. These DBMS types and each version release have different features and functionalities.
Accessing data from remote locations can be difficult for both database users trying to retrieve information from databases and for programmers creating programs using the data. It is even more difficult to access data at a remote location which has a different DBMS.
For large enterprises having many remote locations with different DBMSs, a DBA has to know many different DBMS commands, syntax and structure to access or control access to data at each remote site. Also, to perform the necessary maintenance duties, a DBA also needs to know each remote system, the database system types that are on each system, the databases, contents of each database (e.g., tables and table columns) and the authorizations allowed for each part of each database.
The database type, the database, and the authorization are termed object types, while the actual databases stored in the systems, the tables in the database, the columns of the tables, and the authorizations on each table and column are termed occurrences or instances of a system object type. Materialization of objects refers to the process of creating objects by retrieving and organizing data. The DBAs need to know the object types in a system, the object occurrences, the relationships between objects, the actions that can be performed on a given object, and the way the objects are materialized for each of the systems in the network.
DBAs managing a distributed relational database environment need to be able to determine the status of various systems in the network, perform actions on the data such as moving and copying data between the computer systems, adding and deleting objects such as data items and authorizations, and backing up systems. When each computer system in the distributed network has a different command set and syntax used by the operating system and DBMS, there is an even greater need for an interactive menu driven interface for managing activities over all of the systems.
Therefore, there is a need for a centralized method of managing all of the systems in a distributed database system. It is important for such a system to be menu driven and to be interactive with the user to provide information on the system and the objects and the relationships between objects stored in the system.
There is also a need for flexibility in the design of the interactive menu driven system managing a distributed database system. Typically the distributed systems are continually being changed to contain new object occurrences or instances (such as a particular table), object types (such as a new type of authorization privilege), and relationships between object types and the actions to be performed on object occurrences. Prior programming methods of encoding algorithms for obtaining entity-type and entity-instance relationships and the related program functions to perform various actions on the object instances (occurrences) have typically required the creation of specific purpose code which is unique to the relationship of entities, the entity-type or the instance materialization technique. Traditionally, the specialized materialization code is embedded in each program that processes that entity or object. For example, it is common practice to embed within a program module the programming algorithm necessary to locate entity-to-entity relationships, determine methods of materializing specific instances of the relationship, call methods of materializing specific to instances of the entities, and optionally providing for addition of new object types and actions. This practice results in duplication of effort when the entities are involved in multiple solutions as occurs in managing a distributed system. Therefore, for managing a distributed system, there is a particular need for using a management system object display logic that is decoupled from object instance identification or materialization logic.